/**
 * 消息记录处理的封装
 */

class MsgRecord {


    /**
     * 一般用于收到消息的时候
     * 将一条消息记录加入到msgMap中
     * @param msgMap
     * @param msg
     * @param chatUserId
     */
    static pushMsg = (sessionId, msgMap,msg) => {
        //取出当前用户的消息记录
        let msgList = msgMap[sessionId]
        if(!msgList){
            msgList = []
        }
        msgList.push(msg)
        //更新msgMap
        msgMap[sessionId] = msgList
        return msgList;
    }


    /**
     * 一般用于收到某人消息记录时候
     * 将一条消息记录加入到msgMap中
     * @param msgMap
     * @param msg
     * @param chatUserId
     */
    static mergeMsg = (sessionId, msgMap,msgs) => {
        //取出当前用户的消息记录
        let msgList = msgMap[sessionId]
        if(!msgList){
            msgList = []
        }
        msgs.concat(msgList)
        //更新msgMap
        msgMap[sessionId] = msgList
        return msgList;
    }

    /**
     * 点开消息的时候
     * @param sessionId
     * @param msgMap
     * @param currentMsgList
     */
    static initCurrentMsg(sessionId, msgMap) {
        let msgList = msgMap[sessionId]
        if (msgList) {
            msgList = [].concat(msgList)
            msgList.sort((a, b) => a.createtime - b.createtime)
            return msgList
        }
        return []
    }

    /**
     *
     * 点开消息之后 拼接历史消息
     * @param sessionId
     * @param msgMap
     */
    static concatCurrentMsg(currentMsgList, msgList) {
        currentMsgList = msgList.concat(currentMsgList)
        return currentMsgList
    }

    /**
     *
     * 正在聊天中接收消息
     * 添加消息到当前消息
     * @param currentMsgList
     * @param msg
     */
    static pushCurrentMsg(currentMsgList, msg) {
         currentMsgList.push(msg)
    }

    // /**
    //  * 加入到
    //  * @param nowMsgMap
    //  * @param msg
    //  * @param chatUserId
    //  * @param isRead
    //  * @returns {*}
    //  */
    // static pushNowMsgMap = (nowMsgMap, msg, chatUserId, isRead) => {
    //     //msgMap 不存在
    //     if (!nowMsgMap) {
    //         nowMsgMap = {}
    //     }
    //     //取出当前用户的消息记录
    //     let msgRecord = nowMsgMap[chatUserId]
    //     if (msgRecord == null) {
    //         msgRecord = new MsgRecord()
    //     }
    //     //获取未读消息数量
    //     let count = msgRecord.notReadCount
    //     if (!isRead) {
    //         count = count + 1
    //         msgRecord.notReadCount = count
    //     }
    //     //设置当前聊天
    //     msgRecord.nowMsg = msg
    //     //更新msgMap
    //     nowMsgMap[chatUserId] = msgRecord
    //     return nowMsgMap
    // }


}

export default MsgRecord

